package es.ucm.pe.algorithms;

public class IndividuoTipo5 extends Cromosoma {
	
	public IndividuoTipo5(Rango[] r , double tol, int id){
		super(tol,r, id);
		evaluar();
	}
	
	public IndividuoTipo5(boolean[] genes, double[] fenotipo, double aptitud, double puntuacion,
			double puntAcum, int[] longVar, Rango[] r, int id) {
		super(genes,fenotipo,aptitud,puntuacion,puntAcum,longVar, r, id);
	}
	
	public void evaluar(){
		calcularFenotipo();
		double x1 = fenotipo[0];
		double x2 = fenotipo[1];
		double aux1 = 0;
		double aux2 = 0;
		for (int i=0; i<=5;i++) {
			aux1 += i*Math.cos((i+1)*x1+i);
			aux2 += i*Math.cos((i+1)*x2+i); 
		}
		aptitud = aux1*aux2; 
	}
	
	public Cromosoma clone(){
		Cromosoma c = new IndividuoTipo5(this.genes.clone(),this.fenotipo.clone(),
				this.aptitud, this.puntuacion,this.puntAcum,this.longVar.clone(), this.rango.clone(), this.id);
		return c;
	}
}
